home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_400 / 419_01 / odmg10 / util / scripts / mppmkmf < prev    next >
Encoding:
Text File  |  1993-09-09  |  3.5 KB  |  136 lines

  1. #!/bin/sh
  2. #
  3. # This shell script should be used to create a correct makefile from
  4. # provided Imakefiles. Set the paths below to reflect the imake-setup for your
  5. # system.
  6. #
  7. # Usage :
  8. #
  9. # m++mkmf [ -Dsymbol=value ] [ -Idirectory ]
  10. #         [ -debug ]
  11. #         [ -verbose ]
  12. #         [ -shared ]
  13. #         [ -f imakefile ]
  14. #         [ -T template ]
  15. #
  16. # meaning:
  17. #
  18. #           -Dsymbol=value : define symbol
  19. #           -debug         : create Makefile where objects are compiled with
  20. #                            debugflags
  21. #           -Idirectory    : add additional directories to searchpath
  22. #           -verbose       : echo arguments passed to imake
  23. #           -shared        : create Makefile for creating shared library
  24. #           -f imakefile   : Imakefile is now called 'imakefile'
  25. #           -T template    : use a different template name.
  26. #>
  27.  
  28. VERBOSE="off"
  29. WANT_DEBUG=
  30. WANT_SHARED_LIBRARY=
  31. MPP_IMAKE_FILE=Imakefile
  32. REGULAR_IMAKE_DEFINES=-DUseInstalled
  33. OTHER_DEFINES=
  34. OTHER_INCLUDES=
  35. IMAKE_CONFIG_PATH=/usr/lib/X11/config         # regular path to config files
  36. IMAKE_MPP_CONFIG_PATH=/user/rvloon/mtf/motif++/config # path to Motif++ config files
  37.  
  38. IMAKE_MPP_DEFINES=                            # 
  39. IMAKE_TEMPLATE=
  40. IMAKE_INCLUDE_FILE=-f$IMAKE_MPP_CONFIG_PATH/Motif++.tmpl
  41. TOPDIR="."
  42. CURDIR="."
  43. TOPDIR_SET_BY_DEFINE="*"
  44. CURDIR_SET_BY_DEFINE="*"
  45.  
  46. while [ $# != 0 ]
  47. do
  48. case $1 in
  49. -DTOPDIR*) TOPDIR_SET_BY_DEFINE=`echo $1 | sed 's/-DTOPDIR=//g'` ; shift ;;
  50. -DCURDIR*) CURDIR_SET_BY_DEFINE=`echo $1 | sed 's/-DCURDIR=//g'` ; shift ;;
  51. -DUseInstalled*) shift;;
  52. -D*)     OTHER_DEFINES="${OTHER_DEFINES} $1"
  53.      shift ;;
  54. -I*)     OTHER_INCLUDES="${OTHER_INCLUDES} $1"
  55.      shift ;;
  56. -d*)     WANT_DEBUG=-DWantDebug
  57.      shift ;;
  58. -s*)     WANT_SHARED_LIBRARY=-DWantSharedLibrary
  59.      shift ;;
  60. -v*)     VERBOSE="on"
  61.      shift ;;
  62. -f*)     MPP_IMAKE_FILE=$2 
  63.      shift 
  64.      shift ;;
  65. -T*)     IMAKE_INCLUDE_FILE=-f$2
  66.      shift 
  67.      shift ;;
  68. *)       if [ "$TOPDIR" = "." ]
  69.      then
  70.      TOPDIR=$1
  71.      shift
  72.      else
  73.      if [ "$CURDIR" = "." ]
  74.      then
  75.      CURDIR=$1
  76.      shift
  77.      else
  78.      echo "m++mkmf: option $1 not understood. ignored."
  79.      shift
  80.      fi
  81.      fi
  82.      ;;
  83. esac
  84. done
  85.  
  86. if [ "$TOPDIR_SET_BY_DEFINE" != "*" ]
  87. then
  88. TOPDIR="$TOPDIR_SET_BY_DEFINE"
  89. fi
  90.  
  91. if [ "$CURDIR_SET_BY_DEFINE" != "*" ]
  92. then
  93. CURDIR="$CURDIR_SET_BY_DEFINE"
  94. fi
  95.  
  96. IMAKE_ARGS="${OTHER_INCLUDES} ${OTHER_DEFINES} -I$IMAKE_CONFIG_PATH -I$IMAKE_MPP_CONFIG_PATH $REGULAR_IMAKE_DEFINES $IMAKE_MPP_DEFINES $IMAKE_TEMPLATE $IMAKE_INCLUDE_FILE $WANT_SHARED_LIBRARY $WANT_DEBUG -DTOPDIR=${TOPDIR} -DCURDIR=${CURDIR}"
  97.  
  98. # mimic xmkmf behaviour.
  99.  
  100. if [ -f Makefile ]; then
  101. if [ $VERBOSE = "on" ]
  102. then
  103. echo mv Makefile Makefile.bak
  104. fi
  105. mv Makefile Makefile.bak
  106. fi
  107.  
  108. if [ $VERBOSE = "on" ]
  109. then
  110. echo imake ${IMAKE_ARGS}
  111. fi
  112.  
  113. TMPFILE=/tmp/Imakefile.$$
  114.  
  115. case `basename $0` in
  116. xmkmf) awk <${MPP_IMAKE_FILE} ' /^# *include.*/ ||
  117.                                 /^# *define/    ||
  118.                                 /^# *undef/     ||
  119.                                 /^# *ifdef/     ||
  120.                                 /^# *else/      ||
  121.                                 /^# *endif/     ||
  122.                                 /^# *if/        { print ; next }
  123.                                 /^#.*/          { printf "XCOMM %s\n",
  124.                                                          substr($0,2) ; next }
  125.                                                 { print }' >$TMPFILE
  126.        MPP_IMAKE_FILE=$TMPFILE ;;
  127. *) ;;
  128. esac
  129.  
  130. imake ${IMAKE_ARGS} -DMPPImakefile=\"${MPP_IMAKE_FILE}\" -DOtherImakeDefines="$WANT_DEBUG ${OTHER_DEFINES}" -DOtherImakeIncludes="${OTHER_IMAKE_INCLUDES}"
  131.  
  132. if [ -f $TMPFILE ]
  133. then
  134. rm -f $TMPFILE
  135. fi
  136.